home *** CD-ROM | disk | FTP | other *** search
/ Softdisk Supreme / Softdisk Supreme.iso / pc / DSK Files / 0-49 / SD018b.dsk / MULTIPLICATION FLASH CARDS.bas < prev    next >
BASIC Source File  |  2003-06-12  |  5KB  |  181 lines

  1. 5  REM  MULTIPLICATION
  2. 10  REM  FLASH CARDS
  3. 15  REM  COMPLETED 1982
  4. 20  REM  BY MIKE HIBBS 
  5. 25  REM  FOR THE IBSSS
  6. 30  REM  VINTON, IOWA 52349
  7. 35  REM  A VERSION USING THE 
  8. 40  REM   VOTRAX SPEECH
  9. 45  REM    SYNTHESIZER
  10. 50  REM  IS BEING MADE
  11. 55  REM   **********************
  12. 60  REM 
  13. 100 D$ =  CHR$(4): REM  CTRL-D
  14. 110  PRINT D$"NOMON C,I,O"
  15. 120 F$ = "FLASH CARDS"
  16. 130  TEXT : HOME 
  17. 140  GOTO 950
  18. 150  REM  
  19. 160  GOSUB 890
  20. 170  HOME : VTAB 10
  21. 180  PRINT D$"OPEN"F$
  22. 190  PRINT D$"DELETE"F$
  23. 200 R = 0
  24. 210  PRINT D$
  25. 220  DIM P(9,9)
  26. 230  FOR I = 1 TO 9
  27. 240  FOR J = 1 TO 9
  28. 250 P(I,J) = I *J
  29. 260  NEXT J,I
  30. 270 :
  31. 280 I =  INT( RND(1) *9 +1):J =  INT( RND(1) *9 +1)
  32. 290  IF P(I,J) = 0  THEN 280
  33. 293  INVERSE : PRINT " PRESS SPACE BAR FOR PROBLEM! ";: GET A$: NORMAL : HOME 
  34. 295  VTAB 10: PRINT " #";N +1
  35. 300  VTAB 12
  36. 310  INVERSE : PRINT "WHAT IS "I" X "J" EQUAL TO?": NORMAL :
  37. 330  VTAB 12: HTAB 25: GOSUB 1450
  38. 335  PRINT 
  39. 340 AN = W5
  40. 350  IF B$ = ""  THEN  GOTO 430
  41. 360  IF B = 13  THEN  GOTO 380
  42. 370  IF Z = 1000  THEN  GOTO 430
  43. 380  REM 
  44. 390  IF AN = J *I  THEN  GOSUB 810: GOSUB 810: GOSUB 810: VTAB 21: HTAB 6: FLASH : PRINT " CORRECT...CORRECT...CORRECT "
  45. 400  NORMAL 
  46. 410  IF AN < >J *I  THEN  GOSUB 850: VTAB 20: INVERSE : PRINT " NOT CORRECT!  THE ANSWER IS...";: NORMAL : PRINT " ";J *I
  47. 420  GOTO 470
  48. 430  VTAB 21: INVERSE : PRINT "SORRY!  YOU WERE NOT FAST ENOUGH "
  49. 440  PRINT 
  50. 450  POKE 0,40: POKE 1,150: CALL 771
  51. 460  PRINT " THE ANSWER IS...";: NORMAL : PRINT " ";J *I
  52. 470  FOR PAUSE = 1 TO 2000: NEXT PAUSE
  53. 480  HOME 
  54. 490  IF AN < >I *J  AND R > = 1  THEN  GOSUB 710
  55. 500  IF AN < >I *J  AND R = 0  THEN  GOSUB 610
  56. 510 P(I,J) = 0
  57. 520 N = N +1: IF N = N1  THEN  GOTO 560
  58. 530  PRINT : PRINT 
  59. 540  GOTO 280
  60. 550 :
  61. 560  PRINT D$"CLOSE"F$
  62. 570  PRINT D$
  63. 580  HOME : VTAB 10: IF R = 0  OR R =  >1  THEN  PRINT "  YOU MISSED "R" PROBLEMS!"
  64. 585  IF R = 1  THEN  PRINT "  YOU MISSED "R" PROBLEM!"
  65. 590  FOR PA = 1 TO 2000: NEXT PA: POKE 34,0: HOME : END 
  66. 600 :
  67. 610  REM  TO SAVE MISSED PROBLEMS
  68. 620 R = 1
  69. 630 D$ =  CHR$(4)
  70. 640 P = P(I,J)
  71. 650  PRINT D$"OPEN"F$
  72. 660  PRINT D$"WRITE"F$
  73. 670  PRINT R","I","J","P
  74. 680  PRINT D$
  75. 690  RETURN 
  76. 700 :
  77. 710  REM  TO APPEND MISSED PROBLEMS
  78. 720 R = R +1
  79. 730 P = P(I,J)
  80. 740 D$ =  CHR$(4)
  81. 750  PRINT D$"APPEND"F$
  82. 760  PRINT D$"WRITE"F$
  83. 770  PRINT R","I","J","P
  84. 780  PRINT D$
  85. 790  RETURN 
  86. 800 :
  87. 810  REM  RANDOM "BLIP"
  88. 820  POKE 0, RND(1) *50 +50: POKE 1,8: CALL 771
  89. 830  RETURN 
  90. 840 :
  91. 850  REM    RASBERRY 
  92. 860  FOR T = 1 TO 50:D =  PEEK( -16336): NEXT 
  93. 870  RETURN 
  94. 880 :
  95. 890  REM  SET UP MUSIC
  96. 900  POKE 771,173: POKE 772,48: POKE 773,192: POKE 774,136: POKE 775,208: POKE 776,4: POKE 777,198: POKE 778,1: POKE 779,240:
  97. 910  POKE 780,8: POKE 781,202: POKE 782,208: POKE 783,246: POKE 784,166: POKE 785,0: POKE 786,76: POKE 787,3: POKE 788,3:
  98. 920  POKE 789,96:
  99. 930  RETURN 
  100. 940 :
  101. 950  REM  INSTRUCTIONS
  102. 960  VTAB 5
  103. 970  HTAB 2
  104. 980  INVERSE : PRINT " PLEASE GIVE ME YOUR NAME? ";: NORMAL 
  105. 990  INPUT " ";NA$
  106. 1000  IF NA$ = ""  THEN  GOTO 960
  107. 1010 F$ = F$ +" * " +NA$
  108. 1020  HOME : VTAB 8
  109. 1030  PRINT "GOOD ";NA$;".";
  110. 1040  PRINT "  THIS PROGRAM CHECKS"
  111. 1050  PRINT 
  112. 1060  PRINT "TO SEE..."
  113. 1070  PRINT 
  114. 1080  PRINT "IF YOU KNOW YOUR MULTIPLICATION FACTS."
  115. 1090  PRINT 
  116. 1100  PRINT "MULTIPLICATION FACTS THAT YOU DO NOT "
  117. 1110  PRINT 
  118. 1120  PRINT "KNOW WILL BE SAVED TO THE DISK!"
  119. 1130  PRINT : PRINT 
  120. 1140  PRINT "GOOD LUCK! ";NA$
  121. 1150  FOR PAUSE = 1 TO 6000: NEXT PA
  122. 1160  GOSUB 1270
  123. 1170  HOME : REM   TITLE
  124. 1180  VTAB 2: HTAB 8
  125. 1190  PRINT "M U L T I P L I C A T I O N"
  126. 1200  PRINT 
  127. 1210  PRINT 
  128. 1220  HTAB 11
  129. 1230  PRINT "F L A S H   C A R D S"
  130. 1240  POKE 34,8
  131. 1250  GOTO 150
  132. 1260  REM  PICK SPEED OF INPUT
  133. 1270  HOME 
  134. 1280  VTAB 19: HTAB 4
  135. 1290  INVERSE 
  136. 1300  PRINT "SLOW, MEDIUM, OR FAST RESPONSE?"
  137. 1310  NORMAL 
  138. 1320  VTAB 21
  139. 1330  HTAB 3
  140. 1340  PRINT "  1,     2,        3      ";
  141. 1350  GET SP$
  142. 1360  HOME 
  143. 1370 SP =  VAL(SP$)
  144. 1380  IF SP <1  OR SP >3  THEN  PRINT "<CTRL-G><CTRL-G>": GOTO 1280
  145. 1390 T5 = 400 - VAL(SP$) *70
  146. 1400  HOME 
  147. 1402  VTAB 10: PRINT "HOW MANY PROBLEMS DO YOU WANT TO TRY ?"
  148. 1404  GET N1
  149. 1410  RETURN 
  150. 1420 :
  151. 1430  REM   HANDLES TIMED INPUT
  152. 1440  REM 
  153. 1450 I2 = 1:B$ = "": POKE  -16368,0
  154. 1460 Z = 0
  155. 1470 I2 = I2 +1
  156. 1480  IF I2 >T5  THEN Z = 1000: GOTO 1550
  157. 1490 B =  PEEK( -16384)
  158. 1500  IF B < = 127  THEN  GOTO 1470
  159. 1510  POKE  -16368,0:B = B -128
  160. 1520  IF (B <48  OR B >57)  AND B < >8  AND B < >13  AND B < >45  THEN  GOTO 1470
  161. 1530  IF B < >13  THEN 1590
  162. 1540  IF B$ = ""  THEN 1470
  163. 1550  RETURN 
  164. 1560 :
  165. 1570  REM  COMPILES INPUT
  166. 1580  REM 
  167. 1590  IF B$ = ""  AND B = 8  THEN  GOTO 1470
  168. 1600  IF B = 8  THEN 1670
  169. 1610  IF B = 45  AND B$ < >""  THEN 1470
  170. 1620 B$ = B$ + CHR$(B)
  171. 1630  IF  LEN(B$) = 6  THEN B$ =  LEFT$(B$,5): PRINT "<CTRL-G>": GOTO 1470
  172. 1640  VTAB 12: HTAB 25: PRINT "            "
  173. 1650  VTAB 12: HTAB 25: PRINT B$
  174. 1660 W5 =  VAL(B$): GOTO 1470
  175. 1670  IF  LEN(B$) = 1  THEN B$ = "": VTAB 12: HTAB 25: PRINT "       ": GOTO 1470
  176. 1680 W5 =  VAL( LEFT$(B$, LEN(B$) -1))
  177. 1690 B$ =  LEFT$(B$, LEN(B$) -1)
  178. 1700  VTAB 12: HTAB 25: PRINT "          "
  179. 1710  VTAB 12: HTAB 25: PRINT B$
  180. 1720  GOTO 1470
  181. 1730 :